package com.uziot.bucket.design;

/**
 * @author shidt
 * @version V1.0
 * @className pakgage_info
 * @date 2021-01-29 14:49:23
 * @description </p>
 * <p>
 * 单例模式可以说是整个设计中最简单的模式之一，
 * 而且这种方式即使在没有看设计模式相关资料也会常用在编码开发中。
 * <p>
 * 因为在编程开发中经常会遇到这样一种场景，
 * 那就是需要保证一个类只有一个实例哪怕多线程同时访问，并需要提供一个全局访问此实例的点。
 * <p>
 * 综上以及我们平常的开发中，可以总结一条经验，单例模式主要解决的是，
 * 一个全局使用的类频繁的创建和消费，从而提升提升整体的代码的性能。
 * <p>
 * --------------
 * 虽然只是一个很平常的单例模式，但在各种的实现上真的可以看到java的基本功的体现，
 * 这里包括了；懒汉、饿汉、线程是否安全、静态类、内部类、加锁、串行化等等。
 * 在平时的开发中如果可以确保此类是全局可用不需要做懒加载，那么直接创建并给外部调用即可。
 * 但如果是很多的类，有些需要在用户触发一定的条件后(游戏关卡)才显示，那么一定要用懒加载。线程的安全上可以按需选择。
 * 建议在学习的过程中一定要加以实践，否则很难完完整整的掌握一整套的知识体系。例如案例中的出现的Effective
 */
